home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / eulisp / mpfeel.lha / MPFeel / Modules / sems.em < prev    next >
Text File  |  1992-10-06  |  1KB  |  51 lines

  1. ;; Eulisp Module
  2. ;; Author: pab
  3. ;; File: sems.em
  4. ;; Date: Tue May  5 23:23:43 1992
  5. ;;
  6. ;; Project:
  7. ;; Description: 
  8. ;;
  9.  
  10. (defmodule sems
  11.   (standard0
  12.    semaphores
  13.          
  14.    )
  15.   ()
  16.   
  17.  
  18.   (defstruct semaphore ()
  19.     ((real-sem initform (make-primitive-semaphore)
  20.            reader semaphore-real-sem))
  21.     constructor make-semaphore
  22.     predicate semaphore-p)
  23.  
  24.   (defgeneric open-semaphore (sem))
  25.   (defgeneric close-semaphore (sem))
  26.   (defgeneric initialize-semaphore (sem))
  27.     
  28.   (defmethod open-semaphore ((x object))
  29.     (error "Wrong class for open-semaphore" Internal-Error))
  30.   
  31.   (defmethod open-semaphore ((x semaphore))
  32.     (open-primitive-semaphore (semaphore-real-sem x)))
  33.  
  34.   (defmethod close-semaphore ((x object))
  35.     (error "Wrong class for close-semaphore" Internal-Error))
  36.   
  37.   (defmethod close-semaphore ((x semaphore))
  38.     (close-primitive-semaphore (semaphore-real-sem x)))
  39.  
  40.   (defmethod initialize-semaphore ((x object))
  41.     (error "Wrong class for initialize-semaphore" Internal-Error))
  42.   
  43.   (defmethod initialize-semaphore ((x semaphore))
  44.     (initialize-primitive-semaphore (semaphore-real-sem x)))
  45.   
  46.  
  47.   (export make-semaphore open-semaphore close-semaphore semaphore-p initialize-semaphore)
  48.  
  49.   ;; end module
  50.   )
  51.